Modelling Requirement Engineering
Recognizing Multiple viewpoint
Collaborative Requirement Gathering
Building the requirements model
Quality Function Deployment (QFD) is a powerful technique in software development that helps ensure customer satisfaction by translating customer needs into technical requirements. Think of it as a way to bridge the gap between what customers want and what software engineers need to deliver.
QFD concentrates on maximizing customer satisfaction throughout the software engineering process. It's like having a magic wand that turns customer wishes into concrete technical requirements. QFD identifies three types of requirements:
These are the basic objectives and goals stated by customers. For example, if you're building a mobile app, normal requirements could include specific graphical displays, desired functions, and defined performance levels.
These are implicit requirements that customers might not explicitly state but are fundamental to their satisfaction. Think of them as the must-haves. For instance, ease of use, overall correctness, and reliability fall into this category.
These go beyond customer expectations and bring delight. While basic features of a mobile phone app are expected, exciting requirements could be unexpected capabilities like a multitouch screen or visual voicemail.
Implementing exciting requirements can be tempting, but it can also lead to "requirements creep," where the scope of the project keeps expanding. On the flip side, exciting requirements can lead to breakthrough products. Striking the right balance is crucial.
QFD uses various techniques during the requirements elicitation activity. It involves customer interviews, surveys, and historical data analysis. The gathered data is transformed into a table called the "customer voice table." This table is then reviewed with customers and stakeholders. Diagrams, matrices, and evaluation methods are used to extract expected and exciting requirements.
As requirements are gathered, a vision of system functions starts to emerge. However, understanding how these functions will be used by different end users is crucial. This is where usage scenarios come into play. Imagine you're building a home security system software named SafeHome.
Imagine a meeting room with software team members, marketing representatives, and a facilitator discussing the requirements for SafeHome.
The facilitator suggests developing a usage scenario for accessing the home security function via the Internet.
In this scenario, the marketing person envisions the step-by-step process of accessing the home security function. These scenarios help developers and users understand how the system will be used in real-life situations. It's like creating a story that guides the development process.
QFD, along with usage scenarios, is a dynamic duo in the world of requirements engineering. They help in turning customer needs into tangible technical requirements and provide a clear vision of how the software will be used. Balancing normal, expected, and exciting requirements ensures customer satisfaction without falling into the trap of requirements creep.
So, next time you're building software, think of QFD as your customer satisfaction compass, and usage scenarios as your storytelling tool to guide development.
Software refers to the set of programs, data, and instructions that enable computers to perform specific tasks or functions. It encompasses applications, operating systems, and utilities designed to fulfill user needs, enhancing productivity, communication, entertainment, and virtually all aspects of modern life through computational processes and data manipulation.
Software Engineering is the disciplined application of principles, methods, and tools to develop, test, deploy, and maintain high-quality software systems. It involves systematic approaches to problem-solving, project management, and teamwork, aiming to meet user needs efficiently while adhering to standards and best practices throughout the software development lifecycle.